# caculate模版：计算几何的面积

# 为什么要导入模版？
# 一个项目由多个模版构成，模版是独立的（模块是可以单独运行），多个模版需要互相导入配合使用

# 导入模版：
# （1）import 模版名
# 使用：模版名.属性名
# 属性：模版下的变量、函数、类
import math_tools

# (2) from 模版 import 属性
# 使用：属性名
from math_tools import square as sq
# 形式2容易产生命名冲突（当前模版下有与其他模版导入的属性相同的属性名）
# （1）加上模版名 （2）设置别名（使用as）

# 在caculate模版下也定义一个square函数
def square():
    print("虚假的square")

# 计算圆的面积：πr²
def circle_area(radius):
    # area = 3.14 * math_tools.square(radius)     #形式（1）
    # area = 3.14 * square(radius)     #形式（2）
    area = 3.14 * square(radius)     #形式（2）,发生命名冲突
    # area = 3.14 * math_tools.square(radius)     #形式（2），解决命名冲突-方式1
    area = 3.14 * sq(radius)     #形式（2），解决命名冲突-方式2
    return area

# 疑问：当前项目中有没有其他地方已经实现求r²功能？
# 想法：能不能在当前模版（caculate模版）下使用math_tools模版中的square函数求r²

circle_area(5)